import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import {ElementPlusResolver} from 'unplugin-vue-components/resolvers'
import {createStyleImportPlugin, ElementPlusResolve} from 'vite-plugin-style-import'
import {createSvgIconsPlugin} from 'vite-plugin-svg-icons'
import vueSetupExtend from 'vite-plugin-vue-setup-extend'
import {fileURLToPath} from "url";


export default defineConfig(({mode}) => ({
        // 基础配置
        base: '/',
        // 测试端口 10086
        server: {
            host: '0.0.0.0',//ip地址
            port: 10086, // 设置服务启动端口号
            open: true, // 设置服务启动时是否自动打开浏览器
        },


        // 解决原路径
        resolve: {
            alias: {
                '@': fileURLToPath(new URL('./src', import.meta.url))
            }
        },

        // 插件
        plugins: [
            vue(),
            vueJsx(),
            // 自动倒入原始组建
            AutoImport({
                imports: ['vue', 'vue-router'],
                resolvers: [ElementPlusResolver()],
                eslintrc: {
                    enabled: true
                }
            }),

            // 自动引入组建
            Components({
                directoryAsNamespace: true,
                resolvers: [ElementPlusResolver()]
            }),

            // 自动引入elementstyle风格
            createStyleImportPlugin({
                resolves: [ElementPlusResolve()]
            }),


            createSvgIconsPlugin({
                // 配置路劲在你的src里的svg存放文件
                iconDirs: [fileURLToPath(new URL('./src/assets/icons', import.meta.url))],
                symbolId: 'local-icon-[dir]-[name]'
            }),

            // 解决文件名问题
            vueSetupExtend()
        ],


    })
)